1.中间件
使用php artisan make:middleware *middleware-name*可以创建中间件

2.创建的中间件的文件是（新版5.5）
D:\code\php_laravel\demo1\app\Http\Middleware\AgeMiddleware.php
包含一个handle方法

3.注册中间件
可以全局注册或者根据路由注册
D:\code\php_laravel\demo1\app\Http\Kernel.php文件包含两个变量
middleware 定义的是全局的中间件
routeMiddleware 定义的是路由中间件
实际上还包含一个
middlewareGroups
路由中奖件是定义的KV模式，主要是给中间件取一个名词，方便使用
    protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    ];
在路由中使用可以直接使用auth这个名词
添加一条记录
'age' => \App\Http\Middleware\AgeMiddleware::class,

4.给中间件传递参数
默认的方法如下，我们可以在$next之后添加我们需要的方法
public function handle($request, Closure $next) {
   return $next($request);
}
再创建一个中间件
php artisan make:middleware RoleMiddleware
注册中间件
'role' => \App\Http\Middleware\RoleMiddleware::class,
添加需要的参数
    public function handle($request, Closure $next, $role)
    {
        echo $role;
        return $next($request);
    }
    
5.创建一个controller
php artisan make:controller TestController --plain
新版5.5使用
php artisan make:controller TestController 
创建了文件
D:\code\php_laravel\demo1\app\Http\Controllers\TestController.php
设置路由
Route::get('role',[
   'middleware' => 'role:editor', //传递参数editor
   'uses' => 'TestController@index',
]);

6.cli模式也可以设置中间件

7.中间件的顺序？？？